package mblog.web.controller.desk;

import mblog.base.utils.UploadPicture;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Map;

@Controller
public class FileManageController {
	
	private Logger log = LoggerFactory.getLogger(getClass());

    @RequestMapping(value="getQiNiuToken")
    @ResponseBody
    public Map<String,String> getQiNiuToken(){
        Map<String,String> token = UploadPicture.getUpTokenMap();
        return token;
    }

//	/**
//	 * 图片或视频上传
//	 * <br>图片格式包括：<b>.gif .png .jpg</b>
//	 * <br>视频格式包括：<b>.flv
//	 * @param request
//	 * @param response
//	 * @param fileType
//	 * <br>fileType{pic,video}
//	 * @return
//	 * @throws UnsupportedEncodingException
//	 */
//	@ResponseBody
//	@RequestMapping(value="/file/upload")
//	public String fileuploadV02(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException{
//        Map<String, Object> map = new HashMap<String, Object>();
//        request.setCharacterEncoding("utf-8");
//        DiskFileItemFactory factory = new DiskFileItemFactory();
//        String path = PropertiesUtils.getProperty("upload.url");
//        factory.setRepository(new File(path));
//        factory.setSizeThreshold(100*1024*1024);
//        ServletFileUpload upload = new ServletFileUpload(factory);
//
//		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
//		String context = format.format(new Date());
////      String fileName = FileUtils.getUploadFileNameBybase64(baseImg)+"."+prefix;
//
//        StringBuffer rootPath = new StringBuffer(PropertiesUtils.getProperty("upload.url"));
//        rootPath.append("/"+context);
//        File file =new File(rootPath.toString());
//        //如果文件夹不存在则创建
//        if(!file.exists() && !file.isDirectory()) {
//            file.mkdir();
//        }
//        try {
//            //可以上传多个文件
//            List<FileItem> list = (List<FileItem>)upload.parseRequest(request);
//            for(FileItem item : list){
//                if(!item.isFormField()){
//                    String name = item.getName() ;
//                    String fileSuffix  = name.substring(name.lastIndexOf(".")+1,name.length());
//                    if((!StringUtils.isFlvVideo(fileSuffix)) && (!StringUtils.isSpecPic(fileSuffix))){
//                    	throw new Exception("不是指定格式的视频和图片");
//                    }else{
//
//                    	String newName = UUIDGenerator.getUUID32Bit() + "." + fileSuffix;
//                        String filePath = rootPath.append("/").append(newName).toString();
///*                        OutputStream out = new FileOutputStream(filePath);*/
//                        InputStream in = item.getInputStream() ;
//
//                        String fileStaticPath = "/upload/"+context + "/" + newName;
//                        //start 上传图片至qiniu 服务器
//                        byte[] inBytes = FileUtils.input2byte(in);
//                        UploadPicture.upload(inBytes, fileStaticPath);
//                        //end
//
//                        //以下为保存至本地服务器 暂时保留 start
///*                        InputStream ins = item.getInputStream() ;
//                        int length = 0 ;
//                        byte [] buf = new byte[1024] ;
//                        while( (length = ins.read(buf) ) != -1){
//                            out.write(buf, 0, length);
//                        }
//                        ins.close();
//                        out.close();*/
//                        //end
//
//                        map.put("wwwdomain",PropertiesUtils.getProperty("upload.look.url"));
//                        map.put("filePath",fileStaticPath);
//                        // 验证是否是指定格式的视频或图片
//                        if(StringUtils.isFlvVideo(fileSuffix)){
//                        	String imageSavePath = File.separator+context + File.separator + UUIDGenerator.getUUID32Bit() + ".jpg";
//                        	map.put("imageSavePath",imageSavePath);
//                        	new FFmpegUtil(PropertiesUtils.getProperty("upload.url")+File.separator+fileStaticPath).makeScreenCut(PropertiesUtils.getProperty("upload.url")+imageSavePath, 318, 290);
//                        }
//                        map.put("status", DataStatus.HTTP_SUCCESS);
//                        map.put("data", "视频或图片上传成功");
//                        break;
//                    }
//
//                }
//            }
//        }catch (Exception e) {
//        	log.error("文件上传出错", e);
//            map.put("status", DataStatus.HTTP_FAILE);
//            map.put("data", "文件上传出错");
//        }
//        Gson gson = new Gson();
//        String msg = gson.toJson(map);
//        return msg;
//    }
}